/*******************************************************************************
 * @brief: 参数存储
 * @Author:   aple
 * @Date: 2020-09-02 23:35:00
 * @LastEditors: aple
 * @LastEditTime: 2022-11-12 08:40:17
 * @Verision: 1.0.0.0
 ******************************************************************************/
#include "par_tab.h"
#include "str_ext.h"
#include "at24c.h"

// 存储一个参数
void eep_par_save(uint16_t addr, uint16_t dat)
{
	uint16_t val[2];

	val[0] = dat;

	eep_save(addr, 2, val);
}

// 读取一个参数
uint16_t eep_par_read(uint16_t addr)
{
	uint16_t val[2];

	eep_read(addr, 2, val);

	return val[0];
}

// 整体存储
void par_tab_save(void)
{
	eep_save(EEP_SYS_PAR_BASE + 4, par_pos(end) * 2 - 4, &par_tab[2]);
	eep_save(EEP_SYS_PAR_BASE + 0, 4, par_tab);
}

// 整体加载
void par_tab_load(void)
{
	ii16 index;

	// 读取数据
	eep_read(EEP_SYS_PAR_BASE + 0, par_pos(end) * 2, par_tab);

	// 部分参数复位
	for (index = 0; index <= par_pos(end); index++)
	{
		if (par_attr_tab[index].attr & PAR_ATTR_RST)
		{
			par_tab[index].ival = par_attr_tab[index].init;
		}
	}
}
